Media programs, including audio-video data, are increasingly distributed over telecommunications networks for the viewing and enjoyment of users. Services provide media programs to users through various video delivery technologies (e.g., streaming). For example, the service may allow a user to view the latest television shows or movies using a media player. After a television show airs, the service may experience a high demand for the television show. In one example, a media program provider provides the television show to the service. The service then needs to transcode the television show before the service can make the television show available to the users. For example, the television show may need to be transcoded into different bitrates. Due to the popularity of the video, the service would like to transcode the media program as fast as possible. However, if the transcoding is performed by one transcoder, the service must wait until the transcoder finishes transcoding the entire television show before making the television show available to users. A typical runtime for transcoding a two-hour 1080p video is about 48 hours using H.264 transcoder. Also, if a higher video resolution video, such as a 4K resolution or even higher, and a more complicated transcoding technique such as High Efficiency Video Coding (HEVC)/H.265 or VP9 is used, the transcoding time of new video content will dramatically increase.
In addition to transcoding a video quickly, a service wants to provide the highest quality video possible. A video may be composed of sequential camera shots, which may contain diverse video characteristics. From a video coding standpoint, one way to encode the camera shots is to apply different coding parameters to each different camera shot based on the characteristics of each camera shot. This results in the best compression results of having the highest quality with the lowest bitrate. However, due to the complexity of reconfiguring the transcoder for each camera shot, this method is not used. Rather, a transcoder typically encodes the entire video based on the same transcoding parameters. This results in a transcoding that may not achieve the highest possible quality.